Aksara dan lepasan XML

Dokumen XML terdiri sepeunuhnya daripada aksara set Unicode, dan melainkan beberapa bilangan kecil aksara kawalan, semua aksara yang didefinisikan oleh Unicode boleh hadir dalam dokumen XML. XML includes facilities for identifying the encoding of the Unicode characters that make up the document, and for expressing characters that, for one reason or another, cannot be used directly.

Aksara sah

Titik kod Unicode dalam julat berikut sah dalam dokumen XML 1.0:[5]

  • U+0009, U+000A, U+000D: ini merupakan kod kawalan C0 yang diterima dalam XML 1.0;
  • U+0020–U+D7FF, U+E000–U+FFFD: ini mengetepikan beberapa (bukan semua) kod bukan aksara dalam Basic Multilingual Plane (BMP) (kesemua pengganti, U+FFFE dan U+FFFF tidak dibenarkan);
  • U+10000–U+10FFFF: ini merangkumi semua titik kod dalam satah tambahan, termasuk yang bukan aksara.

XML 1.1[6] melanjutkan set aksara yang dibenarkan: di atas serta aksara dalam julat U+0001–U+001F. Pada masa yang sama, ia mengehadkan penggunaan aksara kawalan C0 dan C1 selain daripada U+0009, U+000A, U+000D, dan U+0085 dengan memerlukan kod-kod tersebut ditulis dalam bentuk lepasan by requiring them to be written in escaped form (misalannya, U+0001 perlu ditulis sebagai  ataupun kod yang setara). Dalam kes aksara C1, hambatan ini merupakan keserasian kebelakang; ia diperkenalkan bagi membolehkan ralat pengekodan dikesan.

Titik kod U+0000 merupakan satu-satunya aksara yang tidak dibenarkan dalam apa jua dokumen XML 1.0 ataupun 1.1.

Mengesan pengekodan

Set aksara Unicode dapat dikodkan ke dalam bait bagi penstoran atau penghantaran dalam beberapa cara yang digelar "pengekodan". Unicode sendiri mendefinisikan pengekodan yang merangkumi seluruh repertoir; yang terkenal termasuklah UTF-8 dan UTF-16.[7] Terdapat banyak lagi pengekodan teks yang mendahului Unicode, ASCII dan ISO/IEC 8859; dalam hampir semua kes, repertoir aksara kod-kod ini merupakan subset repertoir aksara Unicode.

XML membenarkan penggunaan apa jua pengekodan yang didefinisi Unicode, dan juga pengekodan yang hadir dalam Unicode. XML juga menyediakan mekanisme di mana pemproses XML dapat, secara pasti dan tanpa pengetahuan terdahulu, menentukan pengekodan mana yang digunakan.[8] Pengekodan selain daripada UTF-8 dan UTF-16 tidak semestinya dikenali oleh setiap penghurai XML.

Lepasan

XML menyediakan kemudahan lepasan yang membolehkan kemasukan aksara-aksara yang sukar dimasukkan secara langsung. Misalnya:

  • Aksara-aksara "<" dan "&" merupakan penanda penting dan tidak mungkin hadir dalam kandungan di luar seksyen CDATA.[9]
  • Beberapa pengekodan aksara hanya menyokong subset Unicode: misalnya, adalah sah jika mengekod XML dalam ASCII, tetapi ASCII tidak mempunyai titik kod bagi aksara Unicode seperti é.
  • Berkemungkinan sesuatu aksara tidak dapat ditaip dengan mesin penulis.
  • Beberapa aksara memiliki glif yang tidak boleh dibezakan daripada aksara lain. Contoh termasuk:
    • "non-breaking-space" (&#xa0;) " "dibandingkan dengan "space" (&#x20;) " "
    • "Cyrillic Capital Letter A" (&#x410;) "А"dibandingkan dengan "Latin Capital Letter A" (&#x41;) "A"

Terdapat lima entiti pratakrif:

  • &lt; mewakili "<"
  • &gt; mewakili ">"
  • &amp; mewakili "&"
  • &apos; mewakili '
  • &quot; mewakili "

Kesemua aksara Unicode yang dibenarkan boleh diwakili dengan rujukan aksara angka. Sebagai contoh, lihat aksara Cina "中", yang kod angkanya dalam Unicode ialah perenambelasan (hexadecimal) 4E2D, atau perpuluhan (decimal) 20,013. Pengguna yang empunya kekunci yang tidak boleh memasukkan aksara ini masih boleh memasukkannya ke dalam dokumen XML sama ada dengan menaip &#20013; atau &#x4e2d;. Sama juga, rentetan "I <3 Jörg" dapat dikodkan bagi kemasukan ke dalam dokumen XML dengan mengguna "I &lt;3 J&#xF6;rg".

Penggunaan "&#0;" tidak dibenarkan oleh sebab aksara nol merupakan satu daripada aksara kawalan yang dikeluarkan daripada XML, mahupun rujukan aksara angka digunakan.[10] Mekanisme pengekodan lain, seperti Base64 diperlukan bagi mewakilkan aksara-aksara sedemikian.

Ulasan

Ulasan boleh hadir di mana-mana tempat dalam dokumen di luar penanda lain. Ulasan tidak boleh hadir sebelum pengisytiharan XML. Ulasan bermula dengan "<!--" dan berakhir dengan "-->". Rentetan "--" (tanda sempang berganda) tidak dibenarkan dalam ulasan; ini bermaksud ulasan tidak boleh bersarang. Ampersand "&" tidak memiliki nilai bermakna dalam ulasan, jadi rujukan entiti dan aksara tidak diiktiraf, dan tidak ada jalan bagi mewakili aksara yang terkeluar dar set aksara pengekodan dokumen.

Contoh ulasan sah:"<!-- kod tidak perlu <lepasan> & dalam ulasan -->"

Kegunaan antarabangsa

example ini mengandungi teks bahasa Cina. Tanpa sokongan perisian tertentu anda mungkin melihat tanda soal, kotak atau simbol lain dan bukan aksara Cina.

XML 1.0 (Fifth Edition) dan XML 1.1 menyokong penggunaan secara langsung hampir kesemua aksara Unicode dalam nama-nam unsur, atribut, ulasan, data aksara, dan pemprosesan arahan (melainkan yang mempunyai makna simbol khas dalam XML sendiri, seperti tanda "kurang dari", yakni "<"). Berikut ialah dokumen XML yang purna bentuk (well-formed) yang mengandungi aksara tulisan Cina dan Siril:

<?xml version="1.0" encoding="UTF-8" ?><俄语>данные</俄语>

Rujukan

WikiPedia: XML http://teknologi-maklumat.com/wiki/XML http://www.dblab.ntua.gr/~bikakis/XML%20and%20Sema... http://web.archive.org/web/20110514120305/http://d... http://web.archive.org/web/20110726002036/http://d... http://www.tbray.org/ongoing/When/200x/2003/04/26/... http://www.w3.org/Consortium/Legal/2002/copyright-... http://www.w3.org/International/questions/qa-contr... http://www.w3.org/TR/2006/REC-xml11-20060816/ http://www.w3.org/TR/2008/REC-xml-20081126/ http://www.w3.org/TR/2008/REC-xml-20081126/#NT-Att...